home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / misc / emu / ATUtilities.lha / ATUtilities / BASIC / EMSTEST.BAS < prev    next >
BASIC Source File  |  2000-09-26  |  2KB  |  99 lines

  1. $INCLUDE "REGNAMES.INC"
  2. CLS
  3.  
  4. REM -- Adresse des EMS-Fensters -
  5. REG %AX,(&H41*256)
  6. CALL INTERRUPT &H67
  7. FrameSeg=REG(%BX)
  8. PRINT "Segment=$";HEX$(FrameSeg)
  9.  
  10. REM -- 8 Seiten belegen ---------
  11. REG %AX,(&H43*256)
  12. REG %BX,8
  13. CALL INTERRUPT &H67
  14. ems=REG(%DX)
  15. ok=INT(REG(%AX)/256)
  16. IF ok<>0 THEN
  17.  BEEP
  18.  PRINT "Nicht genug freier EMS-Speicher !"
  19.  GOTO ende
  20. END IF
  21. PRINT "Handle=";HEX$(ems)
  22.  
  23. REM -- 6 Seiten hinzufgen ------
  24. REG %DX,ems
  25. REG %BX,6
  26. REG %AX,(&H51*256)
  27. CALL INTERRUPT &H67
  28. ok=INT(REG(%AX)/256)
  29. IF ok<>0 THEN
  30.  BEEP
  31.  PRINT "Nicht genug Speicher zum Anfgen !"
  32.  GOTO ende
  33. END IF
  34.  
  35. REM -- Speichertest -------------
  36. FOR x=0 TO 13
  37.  CALL Mapping(x)
  38.  CALL Schreibe(CHR$(65+x),CHR$(85-x))
  39. NEXT
  40. FOR x=0 TO 13
  41.  CALL Mapping(x)
  42.  CALL Test(CHR$(65+x),CHR$(85-x))
  43. NEXT
  44.  
  45. free:
  46. REM -- Speicher freigeben -------
  47. REG %AX,(&H45*256)
  48. REG %DX,ems
  49. CALL INTERRUPT &H67
  50.  
  51. REM -- Ende ---------------------
  52. ende:
  53. PRINT ""
  54. PRINT "<< Taste >>"
  55. END
  56.  
  57. SUB Mapping(seite) SHARED
  58.  REG %AX,(&H44*256)+0
  59.  REG %BX,seite
  60.  REG %DX,ems
  61.  PRINT "Einblenden: ";seite
  62.  mp=seite
  63.  CALL INTERRUPT &H67
  64. END SUB
  65.  
  66. SUB Schreibe(c1$,c2$) SHARED
  67.  DEF SEG = FrameSeg
  68.  c1=ASC(c1$)
  69.  c2=ASC(c2$)
  70.  PRINT "Beschreiben: ";CHR$(c1);" - ";CHR$(c2)
  71.  FOR i=0 TO 400
  72.   POKE i,c1
  73.  NEXT
  74.  FOR i=16000 TO 16383
  75.   POKE i,c2
  76.  NEXT
  77. END SUB
  78.  
  79. SUB Test(c1$,c2$) SHARED
  80.  DEF SEG = FrameSeg
  81.  c1=ASC(c1$)
  82.  c2=ASC(c2$)
  83.  PRINT "Test"
  84.  FOR i=0 TO 30
  85.   IF PEEK(i)<>c1 THEN
  86.    PRINT "FEHLER !!!   Seite";mp;"   c1=";chr$(c1);"  is=";chr$(peek(i))
  87.    goto ok1
  88.   END IF
  89.  NEXT
  90. ok1:
  91.  FOR i=16350 TO 16383
  92.   IF PEEK(i)<>c2 THEN
  93.    PRINT "FEHLER !!!   Seite";mp;"   c1=";chr$(c2);"  is=";chr$(peek(i))
  94.    goto ok2
  95.   END IF
  96.  NEXT
  97. ok2:
  98. END SUB
  99.